package models;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import javax.persistence.*;

import play.data.format.Formats;
import play.data.validation.Constraints.Required;
import play.db.ebean.Model;

@Entity
public class Fiche extends Model {
	
	private static final long serialVersionUID = 1L;
	
	@Id
	public Long id;
	
	@Required
	@Column(unique=true)
	public String label;

	@ManyToOne
	public Type typeProd;
	
	@Required
	@Column(scale=2)
	public BigDecimal prix;

	@OneToMany(mappedBy="prod", cascade=CascadeType.ALL)
	public List<Caracteristique> lCaracteristique;
	
	@OneToMany(mappedBy="prod", cascade=CascadeType.ALL)
	public List<OptionConfig> lOptions;
	
	
	@Formats.DateTime(pattern="dd-mm-yyyy")
	public Date date_mise_ligne;
	
	public void setPrix(BigDecimal prix) {
		this.prix = prix;
	}

	public static Finder<Long,Fiche> find = new Finder<Long, Fiche>(
			Long.class, Fiche.class);
	
	public static Finder<String, Fiche> findNom =new Finder<String, Fiche>(String.class, Fiche.class);

	public Fiche(Produit _fiche) {
		// TODO Auto-generated constructor stub
		this.label =_fiche.label;
		this.prix =_fiche.prix;
		this.typeProd = _fiche.typeProd;
		this.lCaracteristique =_fiche.lCaracteristique;
		this.lOptions = _fiche.lOptions;
	}

	public static List<Fiche> all() {
		return find.all();
	}

	public static void create(Fiche fiche) {
		fiche.save();
	}

	public static void delete(Long id) {
		find.ref(id).delete();
	}
	
	// à faire
	public static void update(Long id) {
		find.ref(id).update();
	}
	
}
